package cn.catsdad.service.api;

import cn.catsdad.base.service.api.IBaseCrudService;
import cn.catsdad.dto.MenuDTO;
import cn.catsdad.page.MenuParam;
import cn.catsdad.vo.TreeNodeVO;

import java.util.List;

/**
 * 菜单service
 *
 * @author xuyonglong
 * @version V1.0 2023/4/13
 */
public interface MenuService extends IBaseCrudService<MenuDTO, Long> {

    /**
     * 查询用户具备的权限
     *
     * @param userId 用户id
     * @return 具备权限的功能项
     */
    List<MenuDTO> queryMenuOfUser(Long userId);

    /**
     * 查询树形
     *
     * @param menuParam 查询参数
     * @return 完成组装的树形
     */
    List<TreeNodeVO> queryTree(MenuParam menuParam);

    /**
     * 查询未删除、状态为正常的菜单数据
     *
     * @return 菜单数据
     */
    List<MenuDTO> queryNormalMenus();

}
